--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
meshchatx/src/backend/http/live_names.py 4bd787ccd70a459a02eececca3f942f0e64ec4ce (4bd787cc) Text, 1.52 KB
T8b949e# SPDX-License-Identifier: 0BSD
T8b949e"""Live meshchat name bindings for extracted HTTP and WS modules.
Free names in route and dispatch handlers resolve through meshchatx.meshchat
at use time so patch("meshchatx.meshchat.<symbol>") still applies.
"""
Tff7b72from T7ee787__future__ Tff7b72import Te6edf3annotations
Tff7b72import T7ee787types
Tff7b72from T7ee787typing Tff7b72import Te6edf3Any
Tff7b72class T56d364LiveMeshchatNameTb4b4b4:
T8b949e"""Resolve a meshchat module binding at use time so patches apply."""
Tff7b72__slots__ Tff7b72= Tb4b4b4(Ta5d6ff"Ta5d6ff_nameTa5d6ff"Tb4b4b4,Tb4b4b4)
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3nameTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tffa657objectTff7b72.Td2a8ff__setattr__Tb4b4b4(Tff7b72selfTb4b4b4, Ta5d6ff"Ta5d6ff_nameTa5d6ff"Tb4b4b4, Te6edf3nameTb4b4b4)
Tff7b72def Td2a8ff_resolveTb4b4b4(Tff7b72selfTb4b4b4) Tff7b72-Tff7b72> Te6edf3AnyTb4b4b4:
Tff7b72import T7ee787meshchatxT7ee787.T7ee787meshchat Tff7b72as T7ee787mc
Tff7b72return Tffa657getattrTb4b4b4(Te6edf3mcTb4b4b4, Tff7b72selfTff7b72.Td2a8ff_nameTb4b4b4)
Tff7b72def Tff7b72__getattr__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3itemTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Te6edf3AnyTb4b4b4:
Tff7b72return Tffa657getattrTb4b4b4(Tff7b72selfTff7b72.Td2a8ff_resolveTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3itemTb4b4b4)
Tff7b72def Tff7b72__call__Tb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Te6edf3argsTb4b4b4: Te6edf3AnyTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4: Te6edf3AnyTb4b4b4) Tff7b72-Tff7b72> Te6edf3AnyTb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ff_resolveTb4b4b4(Tb4b4b4)Tb4b4b4(Tff7b72*Te6edf3argsTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)
Tff7b72def Td2a8ffinject_meshchat_namesTb4b4b4(Te6edf3module_globalsTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Te6edf3AnyTb4b4b4]Tb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
T8b949e"""Bind meshchat names into a module globals dict for free-variable lookups."""
Tff7b72import T7ee787meshchatxT7ee787.T7ee787meshchat Tff7b72as T7ee787mc
Tff7b72for Te6edf3keyTb4b4b4, Te6edf3value Tff7b72in Te6edf3mcTff7b72.Td2a8ff__dict__Tff7b72.Td2a8ffitemsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3keyTff7b72.Td2a8ffstartswithTb4b4b4(Ta5d6ff"Ta5d6ff__Ta5d6ff"Tb4b4b4)Tb4b4b4:
Tff7b72continue
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3valueTb4b4b4, Tffa657typeTb4b4b4) Tff7b72and Tffa657issubclassTb4b4b4(Te6edf3valueTb4b4b4, Tf85149BaseExceptionTb4b4b4)Tb4b4b4:
Te6edf3module_globalsTb4b4b4[Te6edf3keyTb4b4b4] Tff7b72= Te6edf3value
Tff7b72elif Tffa657isinstanceTb4b4b4(Te6edf3valueTb4b4b4, Te6edf3typesTff7b72.Td2a8ffModuleTypeTb4b4b4)Tb4b4b4:
Te6edf3module_globalsTb4b4b4[Te6edf3keyTb4b4b4] Tff7b72= Te6edf3LiveMeshchatNameTb4b4b4(Te6edf3keyTb4b4b4)
Tff7b72elif Tffa657isinstanceTb4b4b4(Te6edf3valueTb4b4b4, Tffa657typeTb4b4b4) Tff7b72or Tffa657callableTb4b4b4(Te6edf3valueTb4b4b4)Tb4b4b4:
Te6edf3module_globalsTb4b4b4[Te6edf3keyTb4b4b4] Tff7b72= Te6edf3LiveMeshchatNameTb4b4b4(Te6edf3keyTb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3module_globalsTb4b4b4[Te6edf3keyTb4b4b4] Tff7b72= Te6edf3value
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────